A Domain Name System is a hierarchical distributed naming system that is utilized by digital devices to locate available services or other digital devices through the use of a domain name. Typically, a Domain Name System (DNS) features a centralized DNS server that is adapted to translate a received domain name into a corresponding Internet Protocol (IP) address. Furthermore, the DNS server is responsible for storing records for a domain name (e.g. address records, name server (NS) records, and mail exchanger (MX) records) within an internal database and answering service discovery queries against the database.
Over a decade ago, another naming system, referred to as “Multicast Domain Name System” (mDNS), was developed. This system enables the use of DNS programming interfaces and packet formats, but operates without the need for a dedicated DNS server. In mDNS, service discovery allows a querying digital device (user device) to find all available instances of a particular type of network service provided by one or more digital devices in its vicinity. An application within the user device can then resolve a named instance of the network service to an IP address and port number.
More specifically, in accordance with mDNS service discovery, DNS-formatted Query messages are sent over a shared area network using the same IP multicast address. Upon detecting a Query message, each digital device providing that particular network service (server device) returns a Response message with its name in order to identify itself as providing the queried service. From these Response messages, a list of network services from available server devices can be generated.
In particular, as previously mentioned, mDNS provides service discovery on a shared area network based on multicast distribution. This would entail digital devices on the shared area network to learn the network services advertised by all of its members. Therefore, depending on the size and load of the shared area network, a user device may receive an excessive number of Response messages, some of which may be from server devices that are geographically inconvenient from the user device.
For instance, a print service may be provided by a pair of network printers (server devices), where a first network printer is located on the same floor as the user device while a second network printer is located two floors below the user device. If a Query message for print services prompts Response messages from both network printers, the user may accidentally select the second network printer and be forced to retrieve print jobs from an inconvenient location.